/*
 * OpenFile.h
 *
 *  Created on: Apr 16, 2012
 *      Author: jaap
 */

#ifndef OPENFILE_H_
#define OPENFILE_H_

using namespace std;

#include <string>
#include "Inode.h"

/**
 * Een OpenFile representeert een geopende file.
 * [Denk aan de SOFT].
 */
class OpenFile {
	int mode; //1 = lezen, 2 = schrijven
	int usecount; // usage counter
	long ioposition; // de huidige I/O positie
protected:
	Inode * inode; // de bijbehorende inode
	string name;
public:
	OpenFile(Inode* inode, string name);
	int read(char* buffer, int count);

	Inode * getInode();
	int getUsecount();
	long getIoPosition();
	string getName();
	void increaseUsecount();
	void decreaseUsecount();
};

#endif /* OPENFILE_H_ */
